package br.edu.fucapi.posgraduacao.poo2.sgr.controller.impl;

import java.io.Serializable;
import java.util.List;
import javax.inject.Inject;
import br.edu.fucapi.posgraduacao.poo2.sgr.controller.ProjetoController;
import br.edu.fucapi.posgraduacao.poo2.sgr.dao.DAO;
import br.edu.fucapi.posgraduacao.poo2.sgr.model.Projeto;

/**
 * @class Projeto.java
 * @author Fabio Oliveira
 * @date 11/01/2013
 * @brief Classe utilizada para Controle das Operações dos Projetos.
 */

public class ProjetoControllerImpl implements ProjetoController {

	@Inject
	private transient DAO<Projeto, Serializable> dao;
	
	public void salvar(Projeto projeto) throws RuntimeException {
		dao.save(projeto);
	}

	public void remover(Projeto projeto) throws RuntimeException {
		dao.remove(projeto);
	}

	public void atualizar(Projeto projeto) throws RuntimeException {
		dao.update(projeto);
	}

	public List<Projeto> pesquisar(Projeto projeto) throws RuntimeException {		
		return dao.find(projeto);
	}

	public Projeto consultarPorExemplo(Projeto projeto) throws RuntimeException {	
		return dao.findByExemplo(projeto);
	}
	
	public List<Projeto> listarTodos() throws RuntimeException {		
		return dao.findAll(Projeto.class);
	}

}
